﻿using System;
using Sheeter.Library.Model;
using DevExpress.XtraReports.UI;

namespace Sheeter.Library.Reports
{
    public partial class RptMac : XtraReport
    {
        public RptMac(XMLInfo xmlInfo)
        {
            InitializeComponent();
            //
            xrNome.Text = xmlInfo.Nome;
            xrJogador.Text = xmlInfo.Jogador;
            xrCronica.Text = xmlInfo.Cronica;
            xrNatureza.Text = xmlInfo.Natureza;
            xrEssencia.Text = xmlInfo.Essencia;
            xrComportamento.Text = xmlInfo.Comportamento;
            xrConceito.Text = xmlInfo.Conceito;
            xrAfiliacao.Text = xmlInfo.Afiliacao;
            xrCabala.Text = xmlInfo.Cabala;
            //
            AjustaNivel(xmlInfo.Forca, xrForca);
            AjustaNivel(xmlInfo.Destreza, xrDestreza);
            AjustaNivel(xmlInfo.Vigor, xrVigor);
            AjustaNivel(xmlInfo.Carisma, xrCarisma);
            AjustaNivel(xmlInfo.Manipulacao, xrManipulacao);
            AjustaNivel(xmlInfo.Aparencia, xrAparencia);
            AjustaNivel(xmlInfo.Percepcao, xrPercepcao);
            AjustaNivel(xmlInfo.Raciocinio, xrRaciocinio);
            AjustaNivel(xmlInfo.Inteligencia, xrInteligencia);
            //
            AjustaNivel(xmlInfo.Prontidao, xrProntidao);
            AjustaNivel(xmlInfo.Artista, xrArtista);
            AjustaNivel(xmlInfo.Esportes, xrEsportes);
            AjustaNivel(xmlInfo.Consciencia, xrConsciencia);
            AjustaNivel(xmlInfo.Briga, xrBriga);
            AjustaNivel(xmlInfo.Esquiva, xrEsquiva);
            AjustaNivel(xmlInfo.Expressao, xrExpressao);
            AjustaNivel(xmlInfo.Intimidacao, xrIntimidacao);
            AjustaNivel(xmlInfo.Instrucao, xrInstrucao);
            AjustaNivel(xmlInfo.Crime, xrCrime);
            AjustaNivel(xmlInfo.Labia, xrLabia);

            AjustaNivel(xmlInfo.EmpatiaComAnimais, xrEmpatiaAnimais);
            AjustaNivel(xmlInfo.Arqueirismo, xrArqueirismo);
            AjustaNivel(xmlInfo.Oficios, xrOficios);
            AjustaNivel(xmlInfo.Etiqueta, xrEtiqueta);
            AjustaNivel(xmlInfo.Lideranca, xrLideranca);
            AjustaNivel(xmlInfo.Meditacao, xrMeditacao);
            AjustaNivel(xmlInfo.ArmasBrancas, xrArmasBrancas);
            AjustaNivel(xmlInfo.Pesquisa, xrPesquisa);
            AjustaNivel(xmlInfo.Cavalgar, xrCavalgar);
            AjustaNivel(xmlInfo.Furtividade, xrFurtividade);
            AjustaNivel(xmlInfo.Sobrevivencia, xrSobrevivencia);

            AjustaNivel(xmlInfo.Academicos, xrAcademicos);
            AjustaNivel(xmlInfo.AspectosCulturais, xrAspectosCulturais);
            AjustaNivel(xmlInfo.Enigmas, xrEnigmas);
            AjustaNivel(xmlInfo.Investigacao, xrInvestigacao);
            AjustaNivel(xmlInfo.Direito, xrDireito);
            AjustaNivel(xmlInfo.Linguistica, xrLinguistica);
            AjustaNivel(xmlInfo.Cultura, xrCultura);
            AjustaNivel(xmlInfo.Medicina, xrMedicina);
            AjustaNivel(xmlInfo.Metafisica, xrMetafisica);
            AjustaNivel(xmlInfo.Ocultismo, xrOcultismo);
            AjustaNivel(xmlInfo.Ciencia, xrCiencia);
            //
            AjustaNivel(xmlInfo.Conexao, xrConexao);
            AjustaNivel(xmlInfo.Entropia, xrEntropia);
            AjustaNivel(xmlInfo.Forcas, xrForcas);
            AjustaNivel(xmlInfo.Vida, xrVida);
            AjustaNivel(xmlInfo.Materia, xrMateria);
            AjustaNivel(xmlInfo.Mente, xrMente);
            AjustaNivel(xmlInfo.Primordio, xrPrimordio);
            AjustaNivel(xmlInfo.Espirito, xrEspirito);
            AjustaNivel(xmlInfo.Tempo, xrTempo);
            //
            AjustaNivel10(xmlInfo.Arete, xrArete);
            AjustaNivel10(xmlInfo.ForcaDeVontade, xrForcaVontade);
            //AjustaNivel(xmlInfo.ForcaDeVontadeFixo, xrForcaVontadeFixo);
            //
            #region Antecedentes
            //Antecedentes
            if (xmlInfo.Antecedentes.Count > 0)
            {
                for (int i = 0; i < xmlInfo.Antecedentes.Count; i++)
                {
                    if (xrAntecedentes0.Name.Contains(i.ToString()))
                    {
                        xlAntecedente0.Text = xmlInfo.Antecedentes[i].Nome;
                        AjustaNivel(xmlInfo.Antecedentes[i].Nivel, xrAntecedentes0);
                    }
                    else if (xrAntecedentes1.Name.Contains(i.ToString()))
                    {
                        xlAntecedente1.Text = xmlInfo.Antecedentes[i].Nome;
                        AjustaNivel(xmlInfo.Antecedentes[i].Nivel, xrAntecedentes1);
                    }
                    else if (xrAntecedentes2.Name.Contains(i.ToString()))
                    {
                        xlAntecedente2.Text = xmlInfo.Antecedentes[i].Nome;
                        AjustaNivel(xmlInfo.Antecedentes[i].Nivel, xrAntecedentes2);
                    }
                    else if (xrAntecedentes3.Name.Contains(i.ToString()))
                    {
                        xlAntecedente3.Text = xmlInfo.Antecedentes[i].Nome;
                        AjustaNivel(xmlInfo.Antecedentes[i].Nivel, xrAntecedentes3);
                    }
                    else
                    {
                        xlAntecedente4.Text = xmlInfo.Antecedentes[i].Nome;
                        AjustaNivel(xmlInfo.Antecedentes[i].Nivel, xrAntecedentes4);
                    }
                }
            }
            #endregion

            #region Outras Habilidades
            if (xmlInfo.OutrasHabilidades.Count > 0)
            {
                for (int i = 0; i < xmlInfo.OutrasHabilidades.Count; i++)
                {
                    if (xrOutrasHabilidades0.Name.Contains(i.ToString()))
                    {
                        xlOutrasHabilidades0.Text = xmlInfo.OutrasHabilidades[i].Nome;
                        AjustaNivel(xmlInfo.OutrasHabilidades[i].Nivel, xrOutrasHabilidades0);
                    }
                    else if (xrOutrasHabilidades1.Name.Contains(i.ToString()))
                    {
                        xlOutrasHabilidades1.Text = xmlInfo.OutrasHabilidades[i].Nome;
                        AjustaNivel(xmlInfo.OutrasHabilidades[i].Nivel, xrOutrasHabilidades1);
                    }
                    else if (xrOutrasHabilidades2.Name.Contains(i.ToString()))
                    {
                        xlOutrasHabilidades2.Text = xmlInfo.OutrasHabilidades[i].Nome;
                        AjustaNivel(xmlInfo.OutrasHabilidades[i].Nivel, xrOutrasHabilidades2);
                    }
                    else if (xrOutrasHabilidades3.Name.Contains(i.ToString()))
                    {
                        xlOutrasHabilidades3.Text = xmlInfo.OutrasHabilidades[i].Nome;
                        AjustaNivel(xmlInfo.OutrasHabilidades[i].Nivel, xrOutrasHabilidades3);
                    }
                    else
                    {
                        xlOutrasHabilidades4.Text = xmlInfo.OutrasHabilidades[i].Nome;
                        AjustaNivel(xmlInfo.OutrasHabilidades[i].Nivel, xrAntecedentes4);
                    }
                }
            }
            #endregion
        }

        private static void AjustaNivel(int p, XRPictureBox obj)
        {
            if (p.Equals(0))
                obj.Image = Resource._0;
            else if (p.Equals(1))
                obj.Image = Resource._1;
            else if (p.Equals(2))
                obj.Image = Resource._2;
            else if (p.Equals(3))
                obj.Image = Resource._3;
            else if (p.Equals(4))
                obj.Image = Resource._4;
            else
                obj.Image = Resource._5;
        }

        private static void AjustaNivel10(int p, XRPictureBox obj)
        {
            if (p.Equals(0))
                obj.Image = Resource._00;
            else if (p.Equals(1))
                obj.Image = Resource._01;
            else if (p.Equals(2))
                obj.Image = Resource._02;
            else if (p.Equals(3))
                obj.Image = Resource._03;
            else if (p.Equals(4))
                obj.Image = Resource._04;
            else if (p.Equals(5))
                obj.Image = Resource._05;
            else if (p.Equals(6))
                obj.Image = Resource._06;
            else if (p.Equals(7))
                obj.Image = Resource._07;
            else if (p.Equals(8))
                obj.Image = Resource._08;
            else if (p.Equals(9))
                obj.Image = Resource._09;
            else
                obj.Image = Resource._10;
        }
    }
}
